﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Timetabling.Core.Contracts
{
    public interface ITeacherService : IGeneric<Teacher>
    {
        //Como se implementa IGeneric ya esta el edit, add, delete teacher

        /// <summary>
        /// Listar todos los profesores.
        /// </summary>
        /// <returns></returns>
        IList<Teacher> GetAllTeacher();

        /// <summary>
        /// Listar la disponibilidad de un profesor
        /// </summary>
        /// <param name="teacher"></param>
        /// <returns></returns>
        IList<Availability> GetAllAvailability(Teacher teacher);
        /// <summary>
        /// Añadir disponibilidad a un profesor
        /// </summary>
        /// <param name="teacher"></param>
        /// <param name="availability"></param>
        void AddAvailability(Teacher teacher, Availability availability);
        /// <summary>
        /// Eliminar disponibilidad de un profesor
        /// </summary>
        /// <param name="teacher"></param>
        /// <param name="availability"></param>
        void DeleteAvailability(Teacher teacher, Availability availability);
        /// <summary>
        /// Editar disponibilidad de un profesor
        /// </summary>
        /// <param name="teacher"></param>
        /// <param name="availability"></param>
        void EditAvailability(Teacher teacher, Availability availability);
    }
}
